@tool
class_name AdditionalEffect_Action_SetStateChartExpressionProperty
extends AdditionalEffect_Action

#region 属性
@export var key:String
@export var value_cp:CompositeProperty
## 是否是删除key对应的value
@export var is_clear:bool = false
#endregion
#region 字段
#endregion
#region 信号
#endregion

#region 基类方法
## 初始化
func init(args:Dictionary = {}):
	if super(args):
		return true
	return false
## 检查能否执行添加效果，默认为true
func can_excute() -> bool:
	return super()
## 执行添加效果
func excute() -> bool:
	if super():
		target = target as Entity
		if key:
			var value_temp = value_cp.get_value(target) if not is_clear else null
			action.manager.chart.set_expression_property(key,value_temp)
		return true
	else:
		return false
## 取消执行的效果
func cancel_excute() -> bool:
	if super():
		return true
	else:
		return false
#endregion
#region 公共方法
#endregion
#region 私有方法
#endregion
#region 生命周期函数
func _init() -> void:
	if Engine.is_editor_hint():
		resource_local_to_scene = true
#endregion
